package cn.git.agent;

import cn.git.agent.loader.AgentClassLoader;

import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;

/** 
 * @description: 插件资源解析器
 * @program: bank-credit-sy
 * @author: lixuchun
 * @create: 2024-12-27
 */
public class PluginResourceResolver {

    /**
     * 获取插件资源目录(/plugins目录下的所有jar内部的git-plugins.def文件)
     *
     * @return
     */
    public List<URL> getResources() {
        // 返回参数
        List<URL> cfgUrlPathList = new ArrayList<>();

        try {
            // 获取插件类加载器,需要重写ClassLoader以及getResources方法
            Enumeration<URL> urls = AgentClassLoader.getDefaultClassLoader().getResources("git-plugins.def");

            while (urls.hasMoreElements()) {
                URL url = urls.nextElement();
                cfgUrlPathList.add(url);
                System.out.println("获取插件资源 [git-plugins.def] 成功, url: " + url);
            }

            return cfgUrlPathList;
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("获取插件资源 [git-plugins.def] 失败");
        }

        return null;
    }
}
